﻿using System.Windows.Media;

namespace MaterialTypeRecognition.Shell.Geometries
{
    public static class Icons
    {
        public static readonly Geometry SuccessIcon = Geometry.Parse("M824.533333 217.770667c-194.901333 124.714667-336.128 281.6-399.786666 360.618666l-155.221334-127.189333-68.821333 57.6 268.458667 285.269333c46.464-123.52 192.853333-365.098667 371.754666-536.746666l-16.384-39.509334zM512 1024C229.248 1024 0 794.794667 0 512S229.248 0 512 0c282.794667 0 512 229.205333 512 512s-229.205333 512-512 512z");

        public static readonly Geometry ErrorIcon = Geometry.Parse("M512 0C229.205333 0 0 229.205333 0 512s229.205333 512 512 512 512-229.205333 512-512S794.794667 0 512 0z m0 796.458667A56.917333 56.917333 0 1 1 511.957333 682.666667 56.917333 56.917333 0 0 1 512 796.458667z m54.186667-227.797334h0.128a60.501333 60.501333 0 0 1-53.802667 55.893334c2.048 0.256 3.882667 1.152 5.973333 1.152h-11.818666c2.048 0 3.84-0.981333 5.845333-1.109334a59.093333 59.093333 0 0 1-53.162667-55.893333l-13.056-284.16a54.314667 54.314667 0 0 1 54.613334-57.045333h26.282666a52.992 52.992 0 0 1 54.186667 57.002666l-15.146667 284.16z");

        public static readonly DrawingImage WindowIcon;

        static Icons()
        {
            var image = new DrawingImage();
            var group = new DrawingGroup();

            var geometry1 = new GeometryDrawing();
            geometry1.Geometry = Geometry.Parse("M503.897825 763.86807L62.877193 509.233404V763.86807l441.020632 254.616702V763.86807z");
            geometry1.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6D8ACA"));

            var geometry2 = new GeometryDrawing();
            geometry2.Geometry = Geometry.Parse("M283.378526 381.934035L62.877193 509.233404 503.897825 763.86807l220.501333-127.317333L283.378526 381.934035z");
            geometry2.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#283961"));

            var geometry3 = new GeometryDrawing();
            geometry3.Geometry = Geometry.Parse("M283.378526 381.934035L62.877193 254.616702v237.550035l220.501333 127.299368V381.934035z");
            geometry3.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6D8ACA"));

            var geometry4 = new GeometryDrawing();
            geometry4.Geometry = Geometry.Parse("M724.399158 127.317333L283.378526 381.934035v237.53207l441.020632-254.616701V127.317333z");
            geometry4.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#39549F"));

            var geometry5 = new GeometryDrawing();
            geometry5.Geometry = Geometry.Parse("M503.897825 0L62.877193 254.616702l220.501333 127.317333L724.399158 127.317333 503.897825 0zM944.918456 509.233404L503.897825 763.86807v254.616702L944.918456 763.86807V509.233404z");
            geometry5.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4762AF"));

            var geometry6 = new GeometryDrawing();
            geometry6.Geometry = Geometry.Parse("M944.918456 254.616702L724.399158 381.934035v509.233404l220.519298-127.299369V254.616702z");
            geometry6.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4762AF"));

            var geometry7 = new GeometryDrawing();
            geometry7.Geometry = Geometry.Parse("M834.649825 729.070035c0 7.150035 4.365474 10.437614 9.719017 7.347649l35.696281-20.605754c5.371509-3.10793 9.719018-11.425684 9.719017-18.575719 0-7.13207-4.347509-10.437614-9.719017-7.329685l-35.696281 20.605755c-5.353544 3.089965-9.719018 11.407719-9.719017 18.557754zM834.649825 776.820772c0 7.13207 4.365474 10.437614 9.719017 7.329684l35.696281-20.605754c5.371509-3.089965 9.719018-11.407719 9.719017-18.557755 0-7.150035-4.347509-10.437614-9.719017-7.347649l-35.696281 20.62372c-5.353544 3.089965-9.719018 11.407719-9.719017 18.557754zM834.649825 681.337263c0 7.150035 4.365474 10.437614 9.719017 7.329684l35.696281-20.605754c5.371509-3.089965 9.719018-11.407719 9.719017-18.557754 0-7.150035-4.347509-10.437614-9.719017-7.34765l-35.696281 20.62372c-5.353544 3.089965-9.719018 11.407719-9.719017 18.557754zM834.649825 633.586526c0 7.150035 4.365474 10.437614 9.719017 7.347649l35.696281-20.605754c5.371509-3.10793 9.719018-11.425684 9.719017-18.557754 0-7.150035-4.347509-10.455579-9.719017-7.347649l-35.696281 20.605754c-5.353544 3.089965-9.719018 11.407719-9.719017 18.557754zM834.649825 585.853754c0 7.150035 4.365474 10.437614 9.719017 7.329685l35.696281-20.605755c5.371509-3.089965 9.719018-11.407719 9.719017-18.557754 0-7.150035-4.347509-10.437614-9.719017-7.347649l-35.696281 20.623719c-5.353544 3.089965-9.719018 11.407719-9.719017 18.557754z");
            geometry7.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4D76F6"));

            var geometry8 = new GeometryDrawing();
            geometry8.Geometry = Geometry.Parse("M539.001263 58.224281c-7.09614-4.096-17.839158-4.545123-23.983158-0.98807-6.144 3.539088-5.371509 9.736982 1.724632 13.832982l29.426526 16.994807c7.09614 4.096 17.839158 4.545123 23.983158 0.98807 6.144-3.539088 5.371509-9.736982-1.724632-13.832982l-29.426526-16.994807zM497.646035 82.099649c-7.09614-4.096-17.839158-4.545123-23.965193-1.006035-6.144 3.557053-5.371509 9.754947 1.706667 13.850947l29.444491 16.994807c7.078175 4.096 17.821193 4.527158 23.965193 0.988071 6.144-3.539088 5.371509-9.736982-1.724632-13.832983l-29.426526-16.994807zM373.616281 153.707789c-7.09614-4.096-17.839158-4.545123-23.983158-0.98807-6.144 3.539088-5.371509 9.736982 1.724631 13.832983l29.426527 16.994807c7.09614 4.096 17.839158 4.545123 23.983158 0.98807 6.144-3.539088 5.371509-9.736982-1.724632-13.832983l-29.426526-16.994807zM414.953544 129.832421c-7.078175-4.096-17.821193-4.527158-23.965193-0.98807-6.144 3.539088-5.371509 9.754947 1.724631 13.832982l29.426527 16.994807c7.09614 4.096 17.839158 4.545123 23.965193 1.006035 6.144-3.557053 5.371509-9.754947-1.706667-13.850947l-29.444491-16.994807zM456.308772 105.975018c-7.09614-4.096-17.839158-4.545123-23.983158-1.006036-6.144 3.557053-5.371509 9.754947 1.724632 13.850948l29.426526 16.994807c7.09614 4.078035 17.839158 4.527158 23.983158 0.98807 6.144-3.539088 5.371509-9.754947-1.724632-13.850947L456.308772 105.975018z");
            geometry8.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#3FAAF3"));

            var geometry9 = new GeometryDrawing();
            geometry9.Geometry = Geometry.Parse("M118.011509 681.013895c0-6.970386-4.257684-15.090526-9.485474-18.108632-5.245754-3.018105-9.485474 0.197614-9.485474 7.168v38.373053c0 6.970386 4.239719 15.090526 9.485474 18.108631 5.227789 3.018105 9.485474-0.179649 9.485474-7.168v-38.373052zM283.378526 776.497404c0-6.970386-4.239719-15.090526-9.467508-18.108632-5.245754-3.018105-9.485474 0.197614-9.485474 7.168v38.373053c0 6.970386 4.239719 15.090526 9.485474 18.108631 5.227789 3.018105 9.467509-0.179649 9.467508-7.168v-38.373052zM159.348772 704.889263c0-6.970386-4.239719-15.090526-9.485474-18.108631-5.227789-3.018105-9.485474 0.179649-9.485473 7.168v38.373052c0 6.970386 4.257684 15.090526 9.485473 18.108632 5.245754 3.018105 9.485474-0.197614 9.485474-7.168v-38.373053zM200.686035 728.764632c0-6.970386-4.239719-15.090526-9.467509-18.126597-5.245754-3.018105-9.485474 0.197614-9.485473 7.168v38.373053c0 6.988351 4.239719 15.108491 9.485473 18.126596 5.227789 3.018105 9.467509-0.197614 9.467509-7.168v-38.373052zM242.041263 752.64c0-6.988351-4.257684-15.108491-9.485474-18.126596-5.227789-3.018105-9.485474 0.197614-9.485473 7.168v38.373052c0 6.970386 4.257684 15.090526 9.485473 18.126597 5.227789 3.018105 9.485474-0.197614 9.485474-7.168v-38.373053z");
            geometry9.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#72DFFF"));

            var geometry10 = new GeometryDrawing();
            geometry10.Geometry = Geometry.Parse("M738.37586 135.383579l-220.501334 127.299368 206.524632 119.251088 220.519298-127.317333-206.542596-119.233123z");
            geometry10.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4762AF"));

            var geometry11 = new GeometryDrawing();
            geometry11.Geometry = Geometry.Parse("M724.399158 381.934035l-206.524632-119.251088v254.634667l206.524632 119.233123V381.934035z");
            geometry11.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6D8ACA"));

            var geometry12 = new GeometryDrawing();
            geometry12.Geometry = Geometry.Parse("M503.897825 509.233404l-133.730807-77.195229v154.408421l133.730807 77.213193v-154.426385z");
            geometry12.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#40DEF1"));

            var geometry13 = new GeometryDrawing();
            geometry13.Geometry = Geometry.Parse("M637.610667 432.038175l-133.712842 77.195229v154.426385l133.712842-77.213193v-154.408421z");
            geometry13.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#426FFE"));

            var geometry14 = new GeometryDrawing();
            geometry14.Geometry = Geometry.Parse("M503.897825 354.824982l-133.730807 77.213193 133.730807 77.195229 133.712842-77.195229-133.712842-77.213193z");
            geometry14.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#3FAAF3"));

            group.Children.Add(geometry1);
            group.Children.Add(geometry2);
            group.Children.Add(geometry3);
            group.Children.Add(geometry4);
            group.Children.Add(geometry5);
            group.Children.Add(geometry6);
            group.Children.Add(geometry7);
            group.Children.Add(geometry8);
            group.Children.Add(geometry9);
            group.Children.Add(geometry10);
            group.Children.Add(geometry11);
            group.Children.Add(geometry12);
            group.Children.Add(geometry13);
            group.Children.Add(geometry14);

            image.Drawing = group;
            WindowIcon = image;
        }
    }
}
